#!/bin/sh

# Slackware build script for hylafax

# Copyright 2007  David Somero <dsomero@hotmail.com>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# 2007.08.07
# Alan Hicks <alan@lizella.net>
# General script clean-up and minor improvements
#

set -e

PRGNAM=hylafax
VERSION=4.4.0
ARCH=${ARCH:-i486}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}

if [ "${ARCH}" = "i486" ]; then
  SLKCFLAGS="-O2 -march=i486 -mtune=i686"
elif [ "$ARCH" = "i686" ]; then
  SLKCFLAGS="-O2 -march=i686 -mtune=i686"
fi

rm -rf ${PKG}
mkdir -p ${TMP} ${PKG} ${OUTPUT}
cd ${TMP} 
rm -rf ${PRGNAM}-${VERSION}
tar -xvf ${CWD}/${PRGNAM}-${VERSION}.tar.gz

cd ${PRGNAM}-${VERSION}
chown -R root:root .
chmod -R a-s,u+w,go+r-w .

# Copy our source for the correct configuration 
cp $CWD/config.local ${TMP}/${PRGNAM}-${VERSION}/config.local

CFLAGS="${SLKCFLAGS}" \
CXXFLAGS="${SLKCFLAGS}" \
./configure       \
  --nointeractive \
  --disable-pam    \
  --with-optmizer=${CFLAGS}

make
mkdir -p ${PKG}/etc/rc.d
make install ROOT=${PKG}

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a INSTALL COPYRIGHT CONTRIBUTORS README TODO VERSION doc/* $PKG/usr/doc/$PRGNAM-$VERSION
chmod -R a-w $PKG/usr/doc/$PRGNAM-$VERSION/*

# We need to move the etc/rc.d/hylafax to the rc.hylafax file and make it executable.
mv ${PKG}/etc/rc.d/hylafax ${PKG}/etc/rc.d/rc.hylafax
chmod 755 ${PKG}/etc/rc.d/rc.hylafax

( cd ${PKG}
   find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
   find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
)

# Compress man pages
( cd ${PKG}/usr/man
   find . -type f -exec gzip -9 {} \;
   for i in $(find . -type l) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
)

cat ${CWD}/${PRGNAM}.SlackBuild > ${PKG}/usr/doc/${PRGNAM}-${VERSION}/${PRGNAM}.SlackBuild
cat ${CWD}/slack-desc > ${PKG}/usr/doc/${PRGNAM}-${VERSION}/slack-desc

mkdir -p ${PKG}/install
cat ${CWD}/slack-desc > ${PKG}/install/slack-desc

# add a configuration notice
cat << EOF >> ${PKG}/install/doinst.sh
# We warn about needed configuration to the /etc/inittab file.
echo "The following line will need be added to your /etc/inittab,"
echo "please check if its the correct tty device for the modem, "
echo "and in case change it to the correct one."
echo " "
echo "m0:23:respawn:/usr/libexec/hylafax/faxgetty ttyS0"
# Hylafax faxgetty activation
EOF

cd ${PKG}
/sbin/makepkg -l y -c n ${OUTPUT}/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.tgz
